iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0

可觀測性這個名詞最早用於控制系統領域,由工程師 Rudolf Emil Kálmán 所提出。他主張可觀測性(observability)是指外部可以透過輸出訊號,來去判斷系統內部目前的狀態。若我們無法透過系統所發出的信號來判斷狀態,就代表這個系統是不可觀測的。

這個原本來自控制理論的概念,後來被軟體工程社群借用,用來描述我們如何透過外部訊號理解系統的內部狀態。

所以可以說,監控是收集單一個系統所輸出的訊號(如CPU、Memory),來判斷該系統是否健康;而可觀測性則是去串連所有系統所輸出的訊號,透過不同維度的資料來了解系統。當未知的故障出現時,我們也可以透過這些資料進行判斷並處理。

Observability v.s. Monitoring

圖註:Observability v.s. Monitoring

比如說,以監控的角度來看,我們可以得知API 的 Error Rate 上升了 5%。但是,只能從這個資訊得知 API 出了問題,但不知道出了什麼問題。

但以可觀測性的角度來看,我們可以進一步追蹤是 API 的下游服務發生 timeout,觸發系統的 retry 機制,導致請求數暴增。簡單來說,監控告訴你「何時出了問題」,可觀測性則幫你解釋「為什麼會出問題」。

隨著時代變化,可觀測性學說不斷地隨著需求而演進,接下來就讓我們來看看可觀測性最一開始的主張是什麼,以及它在後續做了哪些調整呢?

Observability 1.0: 資料各自為政

1.0 採用大家熟知的三大支柱:metrics, logs, traces,但每種資料類型都儲存在不同的系統中。

這種模式會導致以下問題:

  • 資料孤島:各種資料分散存放,難以關聯分析
  • 成本結構有問題:主要成本驅動因素是工具數量、資料的基數(cardinality)和維度性,這意味著你必須刪除最有價值的部分(上下文和細節)來控制成本
  • 查詢限制:無法進行跨資料類型的複雜查詢

Observability 2.0: single source of truth

於是,Observability 2.0 試圖解決 1.0 在資料孤島、成本與查詢上的限制,讓資料能真正被探索與使用。2.0 強調把資料視為資料本身,而不是受限於工具定義,當故障發生時,可觀測性系統要能提供使用者不同維度的資料。

2.0 根據以下面向進行調整,來做到這樣的精神:

  • 單一的資料儲存: 不管是 Metrics, Logs, Traces,都統一儲存在同個資料庫中
  • 資料聚合(aggregation): 不在寫入時預先聚合資料,而是儲存原始的寬泛結構化事件,在查詢時進行即時聚合分析
  • 資料採樣(sampling): 不因為成本來刪除有價值的上下文(Context),而是刪除最不重要的資料

再者,2.0 更專注於開發,強調觀測是整個軟體開發生命週期的基礎,當開發過程中遇到問題,就能透過這些不同維度的觀測資料做出假設,從中進行驗證。

Observability 3.0: 不只是技術,更是文化上的革命

Observability 3.0 開始在社群中有一番激烈的討論與辯證。如果說 1.0 和 2.0 強調可觀測性「工具」,那 3.0 則是想要主張可觀測性「文化」。

3.0 想要將可觀測性還政於民,從 SRE/DevOps 手中交還給開發者,負責確保自己程式的可觀測性(shift-left observability)。而 SRE 團隊的角色會更像資料治理團隊。

而在技術層面,3.0 也主張統一的 data lake,將系統、產品、商業層面的資料做統合,一樣扣合 2.0 的主張,同時也鼓勵 AI 驅動的採樣、分析及預測。

也就是說,Observability 3.0 將不會只收集工程相關的資料,將會更注重於商業價值及其貢獻,包含收集產品相關的分析、業務預測等。讓可觀測性系統不只是發現問題,更能協助進行決策。

雖然 3.0 的主張還沒有個定論,但已經可以看到可觀測性在未來的趨勢。
Observability 1.0 到 3.0 的演進

圖註:Observability 1.0 到 3.0 的演進

結語

從 1.0 到 3.0 的演進,我們可以看到可觀測性從收集資料逐步走向資料探索,再到文化與商業價值的追求。
1.0 時代讓系統能夠暴露訊號,使我們得以判斷並處理已知問題;
2.0 讓我們能夠跨維度地探索、串聯資料,回答「為什麼會故障」;
而 3.0 則進一步把可觀測性提升到組織文化與決策支援的高度。

而回到我的經驗,過去接觸到的多半還停留在 Observability 1.0 的思維,資料孤島與問題追蹤不易經常是最大的挑戰。這也讓我開始思考,能否把 Observability 2.0 的概念引入團隊,來改善現況。

OpenTelemetry 正是 2.0 思想的具體實踐,它統一了資料的收集與輸出,幫助團隊更容易踏出可觀測性的第一步。

下一篇,讓我們延續 Observability 2.0 的主張,深入探討它所收集的資料與 1.0 有何不同,再進一步談談 OpenTelemetry 在可觀測性工程上的實踐。

參考資料

Charity Majors, Liz Fong-Jones, George Miranda 著. 可觀測性工程|達成卓越營運. 呂健誠譯. 歐萊禮, 2023.

CNCF - Observability Whitepaper

Charity Majors - Another observability 3.0 appears on the horizon

Charity Majors - Observability is due for a version change: are you ready for it?

Matt Klein - Observability 3.0

Hazel Weakly - The future of observability is observability 3.0

SigNoz Blog- Observability vs Monitoring - The difference explained with an example

Mongkol Thongkraikaew - Let's Get to Know Observability 3.0


上一篇
Day 02: 淺談監控方法論
系列文
被稱作Server Restart Engineer的我,也想了解如何實踐可觀測性工程3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言